from flask import Flask, render_template, request, jsonify  
import GZRWeb

MAX_LEN = 10

def show_list(report_list):
    """  
    显示加载的报告列表  
  
    参数：  
    - report_list: 报告列表  
  
    返回：  
    - result: 列表字符串  
    """
    item_len = len(report_list)
    if item_len>MAX_LEN:
        item_len = MAX_LEN
    res_sre_list = []
    for i in range(item_len):
        res_sre_list.append('----------------------------------------------------------------------')
        res_sre_list.append(str(i+1)+ '. ' + report_list[i][1])
        res_sre_list.append('reportID：' + report_list[i][0])
        res_sre_list.append('批准号:   '+report_list[i][2]+'       项目类别:   '+report_list[i][3]+'       申请代码:   '+report_list[i][14])
        res_sre_list.append('依托单位:   '+report_list[i][4]+'       项目负责人:   '+report_list[i][5])
        res_sre_list.append('资助经费:   '+report_list[i][6]+'       批准年度:   '+report_list[i][7]+'       结题年度:   '+report_list[i][15])
        res_sre_list.append('关键词: '+report_list[i][8])
        res_sre_list.append('开题摘要:<br>    '+report_list[i][19])
        res_sre_list.append('结题摘要:<br>    '+report_list[i][20])
    res_sre_list.append('----------------------------------------------------------------------')

    result = "<br>".join(res_sre_list)
    return result

app = Flask(__name__) 
  
@app.route('/')  
def index():  
    return render_template('index.html')  
  
@app.route('/calculate', methods=['POST'])  
def calculate():
    data = request.get_json()  
    expression = data['expression']  
    try:  
        res = GZRWeb.search(expression)
        itemLen = len(res)                          # 获取数据长度，UI中翻页使用，暂时没有用
        result = show_list(res)                     # 显示数据，用于选择下载项 
        return jsonify({'result': result})  
    except Exception as e:  
        return jsonify({'error': str(e)})
    
if __name__ == '__main__':
     app.run()